import { Body, Controller, Get, Post, Query } from '@nestjs/common';
import { MenuService } from './menu.service';
import { ApiTags, ApiOperation } from '@nestjs/swagger';
import { MenuAddDto } from './dto/menu-add.dto';
import { MenuUpdateDto } from './dto/menu-update.dto';
import { MenuListDto } from './dto/menu-list-dto';

@ApiTags('路由管理')
@Controller('menu')
export class MenuController {
  constructor(private readonly menuService: MenuService) {}

  // 获取路由列表
  @ApiOperation({ summary: '获取路由列表' })
  @Get('list')
  getRouteList(@Query() menuListDto: MenuListDto) {
    return this.menuService.getRouteListService(menuListDto);
  }

  // 获取所有顶层路由
  @ApiOperation({ summary: '获取所有顶层路由' })
  @Get('printList')
  getPrintList() {
    return this.menuService.getPrintList();
  }

  // 添加路由
  @ApiOperation({ summary: '添加路由' })
  @Post('add')
  addRoute(@Body() menuAddDto: MenuAddDto) {
    return this.menuService.addRoute(menuAddDto);
  }

  // 更新路由
  @ApiOperation({ summary: '更新路由' })
  @Post('update')
  updateRoute(@Body() body: MenuUpdateDto) {
    return this.menuService.updateRoute(body);
  }

  // 删除路由
  @ApiOperation({ summary: '删除路由' })
  @Post('remove')
  removeRoute(@Body() body: { id: number }) {
    return this.menuService.removeRoute(body.id);
  }
}
